package main

import "fmt"

func main() {
	//map是一种key:value键值对
	//var 变量名称[key的数据类型]值的数据类型
	// var info map[string]string  没有默认空间,使用map初始化一个类型的默认值
	var m1 = make(map[string]string) //先声明再赋值
	m1["name"] = "tom"
	m1["age"] = "18"
	fmt.Println(m1)

	//(1)初始化
	m2 := map[string]string{
		"name": "jerry",
		"age":  "18",
	}
	fmt.Println(m2)

	var m3 = map[string]string{"name": "Jake", "age": "22"}
	fmt.Println(m3)

	//(2)遍历map
	for key, value := range m3 {
		fmt.Println(key, value)
	}
	//(2.1)只想遍历key
	for k := range m3 {
		fmt.Println(k)
	}

	//(3)判断map中键是否存在的特殊写法 value, ok := map[key]
	scoreMap := make(map[string]int)
	scoreMap["张三"] = 90
	scoreMap["小明"] = 100
	// 如果key存在ok为true,v为对应的值；不存在ok为false,v为值类型的零值
	v, ok := scoreMap["张三"]
	if ok {
		fmt.Println(v)
	} else {
		fmt.Println("查无此人")
	}

	//(4)delete()函数删除键值对 delete(map, key)
	delete(scoreMap, "小明") //将小明:100从map中删除
}
